package com.lsl.command_pattern.commandQueue;

import com.lsl.command_pattern.example.command.Command;

import java.util.ArrayList;

/**
 * description:命令队列
 * 由该类来负责存储多个命令对象，而不同的命令对象可以对应不同的请求接收者
 *
 * @author: liushengli
 * data: 2022/12/1
 */
public class CommandQueue {
    //定义一个ArrayList来存储命令队列
    private ArrayList<Command> commands = new ArrayList<Command>();

    public void addCommand(Command command) {
        commands.add(command);
    }

    public void removeCommand(Command command) {
        commands.remove(command);
    }

    //循环调用每一个命令对象的execute()方法
    public void execute() {
        for (Object command : commands) {
            ((Command) command).execute();
        }
    }
}
